package main

import (
	"fmt"
)

func main() {
	var intarr [6]int = [6]int{1, 4, 7, 3, 6, 9}
	var slice []int = intarr[1:4]
	fmt.Println(slice)
	fmt.Println(len(slice))

	// 底层创建一个新数组，将老数组的值复制到新数组并追加数据，slice2指向新数组
	// 底层的新数组 不能直接维护，需要通过切片间接维护操作。
	slice2 := append(slice, 88, 50)
	fmt.Println(slice2)
	fmt.Println(len(slice2))

	// 往往我们在使用追加的时候其实想要做的效果给slice追加
	slice = append(slice, 88, 50)
	fmt.Println(slice)
	fmt.Println(len(slice))

	slice3 := []int{99, 60}
	slice = append(slice, slice3...)
	fmt.Println(slice)
	fmt.Println(len(slice))

	// 拷贝
	var slice4 []int = make([]int, 10)
	copy(slice4, slice)
	fmt.Println(slice4)
	fmt.Println(len(slice4))

}
